const path = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')

// 1.x旧版本写法
// const { injectBabelPlugin } = require('react-app-rewired');
// module.exports = function override(config, env) {
//     // 修改配置
//     config.resolve.alias['@'] = path.join(__dirname, './src/')

//     config = injectBabelPlugin([
//         "@babel/plugin-proposal-decorators", { "legacy": true }
//     ], config);

//     // 一定要返回修改后的配置文件
//     return config;
// }


// 2.x 新版本写法
const {
  override,
  overrideDevServer,
  addWebpackPlugin,
  addDecoratorsLegacy,
  disableEsLint,
  addBundleVisualizer,
  addWebpackAlias,
  adjustWorkbox,
  addWebpackResolve,
  addWebpackModuleRule
} = require("customize-cra");

const devServerConfig = () => config => {
  return {
    ...config,
    // // 支持histroy路由
    historyApiFallback: true,
    proxy: {
      '/api': { // 将www.exaple.com印射为/apis
        target: 'http://10.3.144.89:3000', // 接口域名
        secure: false, // 如果是https接口，需要配置这个参数
        changeOrigin: true, // 是否跨域
        pathRewrite: {
          '^/api': '' // 需要rewrite的,
        }
      }
    }
  };
};


module.exports = {
  webpack: override(
    // 支持装饰器
    addDecoratorsLegacy(),
    // 禁用esLint检查
    disableEsLint(),

    // 添加路径别名
    addWebpackAlias({
      "@": path.resolve(__dirname, './src/')
    }),
  ),
  devServer: overrideDevServer(devServerConfig())
}